#include<iostream>
using namespace std;
const int N=1e5+10;
typedef long long ll;
ll a[N],b[N];
ll tr1[N],tr2[N];
ll n,m;
ll lowbit(ll x)
{
    return x&-x;
}
void add(ll x,ll k,ll tr[])
{
    for(ll i=x;i<=n;i+=lowbit(i))
    {
        tr[i]+=k;
    }
}
ll ask(ll x,ll tr[])
{
    ll sum=0;
    for(ll i=x;i>0;i-=lowbit(i))
    {
        sum+=tr[i];
    }
    return sum;
}
ll get_sum(ll x)
{
    return ask(x,tr1)*(x+1)-ask(x,tr2);
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        scanf("%lld",a+i);
    }
    for(int i=1;i<=n;i++)
    {
        b[i]=a[i]-a[i-1];
        add(i,b[i],tr1);
        add(i,i*b[i],tr2);
    }
    while(m--)
    {
        char op[2];
        scanf("%s",op);
        if(*op=='Q')
        {
            int l,r;
            scanf("%d %d",&l,&r);
            printf("%lld\n",get_sum(r)-get_sum(l-1));
        }
        else
        {
            int k,l,r;
            scanf("%d %d %d",&l,&r,&k);
            add(l,k,tr1);
            add(r+1,-k,tr1);
            add(l,l*k,tr2);
            add(r+1,(r+1)*(-k),tr2);
        }
    }
    return 0;
}
